#include <stdlib.h>
#include <stdio.h>

typedef int ElementL;


struct sCellule
{
  ElementL info;
  struct sCellule *suivant;
};
typedef struct sCellule Cellule;


struct sListe
{
  Cellule * debut;
  Cellule * fin;
  int taille;
};
typedef struct sListe Liste;


void initialiserListe(Liste * l);
/* Precondition : l non prealablement initialisee
   Postcondition : la liste l initialisee est vide */


int ajouterEnQueueListe(ElementL e, Liste * l);
/* Precondition : l et e initialises et manipules uniquement a travers les
                  operations de leurs modules respectifs
   Postcondition : e est ajoute en fin de la liste l */


void initialiserListe(Liste * l)
{
    l->debut=NULL;
    l->fin = NULL;
    l->taille = 0;
}

int ajouterEnQueueListe(ElementL e, Liste * l)
{
    Cellule * c;
    c=(Cellule*)malloc(sizeof(Cellule));
    c->info = e;
    c->suivant= l->debut;
    l->fin = c;
    l->taille++;
    return 0;
}

void afficherListeGaucheDroite(const Liste * l)
{

    Cellule * c= l->debut;
    while(c != NULL)
	{
        afficherElementL(c->info);
        c=c->suivant;
	}
}



int main()
{
    Liste L;
    initialiserListe(&L);
    ajouterEnQueueListe(50,&L);
    ajouterEnQueueListe(51,&L);


    return 0;
}
